Computer systems can generate output information in several ways, including video output and “hard copy” or printed output. Although more and more output consists of evanescent video screens, a large amount of data is still printed on paper and other permanent media. Therefore, there is a need for efficiently describing printed data and then printing a hard copy page from the print description. The printing is often performed by high-speed, high-volume printing systems which receive streams of encoded print data and utilize “intelligent” printers that can store commands and data. Such encoded print streams often include data for many printed pages. For example, a telephone company might print all of its telephone bills for a specified week with a single print stream. Each page in the print stream may be a telephone bill for a particular customer.
In such printing and presentation systems, fonts may be stored in files in a separate resource database, commonly referred to as a “resource library.” Such font resources enable a relatively small set of characters to be efficiently defined for printing and displaying. A font resource may define the encoding (mapping values, referred to as code points, to characters), the metrics (measurements of a character), glyphs (actual images of a character) and descriptive attributes of a collection of related characters. For example, a typical Latin font contains approximately three hundred (300) characters including alphabetic, numeric, symbolic, punctuation and special drawing characters. In another example, Unicode is a 16-bit character encoding standard that is capable of representing all of the world's languages, including non-Roman languages, such as Chinese, Japanese and Hindi. The Unicode standard can encode more than 1 million characters.
Typically, in printing and presentation systems, an application on a computer, commonly referred to as a client computer, may generate a printable and/or viewable data stream that contains page description information typically stored in a file. The page description information includes information used to print a document. Such information may include a reference to a font resource, e.g., True Type font. The font resource may be referenced by specifying the file name that contains the font resource in the resource library. Hence, the file name may be specified in the data stream generated by the application along with the character string to be printed using that font resource.
However, referencing font resources by file names is system dependent. For example, a font resource, e.g., TrueType, may be stored in file name #1 in one system but stored as a different file name, file name #2, in a different system. Hence, the application program must reference a font resource using different file names in different systems. If the application program references the font resource with the incorrect file name, then the font resource will not be able to be retrieved.
Also, there is the possibility that two different files may store the same resource. For example, the TrueType font resource may be installed initially in the resource library in a stand alone font file. The application program would then reference the stand alone font file using the file name that stores the TrueType font resource. The TrueType font resource may later be installed as part of a collection of fonts such as a TrueType Collection file. The application program would then have to be modified to reference the collection file with an index to the TrueType font reference.
Further, if there are changes to a resource file, then the user may have to build or buy a special purpose font. For example, Microsoft™ provides the ability for a user to add a character to a font resource provided the character appears in a special type of file used for extending TrueType fonts for user-defined characters. Such files have a .tte extension. However, if the user desires to add a character not found in the file, then the user may have to build or buy a special purpose font resource that incorporates the added character along with the base font resource. Similarly, if a customer wants to replace a character in the font resource because the character has an error, the customer is usually prevented from modifying the font resource due to the license from the manufacturer of the font resource. The customer may then have to build or buy a special purpose font resource that includes the additional or modified character as well as the other characters in that font resource. Furthermore, if a customer wants to delete a character in the font resource because the customer will not use the character, then the customer may have to build or buy a special purpose font resource that does not include the character the customer desires to delete. The application program would then have to be modified in order to reference the special purpose font resource. Hence, when there are changes to a resource file, the application may then have to be modified in order to select the correct file containing the correct font resource.
Therefore, there is a need in the art for a printing system with a system independent resource reference in the data stream. Further, there is a need in the art for a printing system that does not require any changes to the application if there are changes to the resource file.